#ifndef _DUTR_H
#define _DUTR_H

#include <cviauto.h>

#ifdef __cplusplus
    extern "C" {
#endif
extern const IID DUTR_IID_IDUTReader;

extern const IID DUTR_IID_IDUTReader2;

HRESULT CVIFUNC DUTR_NewIDUTReader (const char *server,
                                    int supportMultithreading, LCID locale,
                                    int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_OpenIDUTReader (const char *fileName, const char *server,
                                     int supportMultithreading, LCID locale,
                                     int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_ActiveIDUTReader (const char *server,
                                       int supportMultithreading, LCID locale,
                                       int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_IDUTReaderInitialize (CAObjHandle objectHandle,
                                           ERRORINFO *errorInfo, long *piSuccess);

HRESULT CVIFUNC DUTR_IDUTReaderTerminate (CAObjHandle objectHandle,
                                          ERRORINFO *errorInfo);

HRESULT CVIFUNC DUTR_IDUTReaderInvokeDUTReader (CAObjHandle objectHandle,
                                                ERRORINFO *errorInfo,
                                                VARIANT pvaContext,
                                                long *piSuccess);

HRESULT CVIFUNC DUTR_IDUTReaderInvokeAdvDUTReader (CAObjHandle objectHandle,
                                                   ERRORINFO *errorInfo,
                                                   VARIANT pvaContext,
                                                   VARIANT *pvaSerialNumber,
                                                   VARIANT *pvaProductCode,
                                                   long *piSuccess);

HRESULT CVIFUNC DUTR_IDUTReaderDoPCC (CAObjHandle objectHandle,
                                      ERRORINFO *errorInfo, const char *bsSerNo,
                                      long *piSuccess);

HRESULT CVIFUNC DUTR_IDUTReaderTestCompleted (CAObjHandle objectHandle,
                                              ERRORINFO *errorInfo,
                                              const char *bsReport);

HRESULT CVIFUNC DUTR_NewIDUTReader2 (const char *server,
                                     int supportMultithreading, LCID locale,
                                     int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_OpenIDUTReader2 (const char *fileName, const char *server,
                                      int supportMultithreading, LCID locale,
                                      int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_ActiveIDUTReader2 (const char *server,
                                        int supportMultithreading, LCID locale,
                                        int reserved, CAObjHandle *objectHandle);

HRESULT CVIFUNC DUTR_IDUTReader2PostTestEvent (CAObjHandle objectHandle,
                                               ERRORINFO *errorInfo);

HRESULT CVIFUNC DUTR_IDUTReader2CompleteOperation (CAObjHandle objectHandle,
                                                   ERRORINFO *errorInfo,
                                                   const char *bsReport);
#ifdef __cplusplus
    }
#endif
#endif /* _DUTR_H */
